package com.edee.bigday.member.web;

import com.alibaba.fastjson.JSON;
import com.edee.bigday.member.feign.OrderFeignService;
import com.edee.common.utils.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;

@Controller
public class MemberWebController {

    @Autowired
    OrderFeignService orderFeignService;

    @GetMapping("memberOrder.html")
        public String memberOrderPage(@RequestParam(value = "pageNum",defaultValue = "1") Long pageNum,
                                      Model model, HttpServletRequest request){
        //获取到传来的所有请求数据。可以从request中获取到获取到请求数据并验证签名。

        //查询当前登录用户的所有订单列表：
        Map<String, Object> page = new HashMap<>();
        page.put("page",pageNum.toString()); //此处原来写为pageNum，因java.lang.Integer cannot be cast to java.lang.String异常，修改为pageNum.toString()。
        R r = orderFeignService.listWithItem(page);
        //上面远程调用订单服务，本来是需要登录的。通过memberOrder.html页面访问，可以带上cookie。带上cookie远程访问，
        // 如果被调用方有这个cookie，也算是登录了。就想此前在order访问中写的Feign的请求拦截器com.edee.bigday.order.config.BigdayFeignConfig，
        // 每次请求进来，就先拦截下来，将老请求的cookie同步给新请求。凡是涉及页面跳转的，就会经常用这样的拦截器。将上面的拦截器复制一份过来。
        // 将返回的R对象在控制台打印一下：
        System.out.println(JSON.toJSONString(r));
        model.addAttribute("orders",r);
        return "orderList";
    }
}
